package domain

import (
	"github.com/hlhutu/gormplus"
	"ruoyi-go/internal/framework/db"
)

/**
 * 角色与部门关联表 SysRoleDept
 */
type SysRoleDept struct {
	// 角色ID
	RoleId int64 `json:"roleId" gorm:"column:role_id" form:"roleId"`

	// 部门ID
	DeptId int64 `json:"deptId" gorm:"column:dept_id" form:"deptId"`
}

// TableName 映射数据库表名
func (m SysRoleDept) TableName() string {
	return "sys_role_dept"
}

// SysRoleDept Model 定义
type sysRoleDeptModel struct {
	gormplus.Model[SysRoleDept] // 使用泛型封装基础操作
}

// SysRoleDeptModelInst 单例变量初始化
var sysRoleDeptModelInst *sysRoleDeptModel

// SysRoleDeptModel 获取 SysRoleDept 单例模型
func SysRoleDeptModel() *sysRoleDeptModel {
	if sysRoleDeptModelInst == nil {
		// 将 SysRoleDept 注册到 GORM DB，并初始化
		sysRoleDeptModelInst = &sysRoleDeptModel{Model: gormplus.NewModel(SysRoleDept{}, db.GormDB)}
	}
	return sysRoleDeptModelInst
}
